前言
在操作Burp Suite的十時候,深刻感覺到我基礎知識的匱乏,於是決定更多了解網絡安全性的概念
我要學習的理論概念:
用戶端-伺服器模型: 要理解我的瀏覽器(Client)是如何向伺服器(Server)發送請求(Request),以及伺服器如何回傳回應(Response)的整個流程。
HTTP 請求的結構: 辨識出一個請求中的請求行(如 GET /login.php)、標頭(Headers,如 Host, User-Agent, Cookie)以及請求主體(Body)。
HTTP 回應的結構: 同樣地,我要能看懂回應中的狀態碼(如 200 OK, 404 Not Found)、標頭(Headers,如 Set-Cookie)和回應主體(HTML 內容)。
HTTPS 的角色: 理解 HTTPS 是如何透過 SSL/TLS 為 HTTP 流量加密,以及它在防止竊聽與竄改上的重要性。
這與我的 Burp Suite / DVWA 實戰連結: Burp Proxy 的核心功能就是攔截並解析這些 HTTP 請求與回應。我必須先搞懂這些理論,才能看懂 Burp 攔截到的資訊代表什麼意義。DVWA 的所有挑戰,都建立在這個基礎之上。
我給自己的今日思考題: 當我在 DVWA 登入頁面輸入帳號密碼並按下送出時,這個 HTTP 請求的「方法」(Method)、「標頭」(Headers) 和「主體」(Body) 分別會長什麼樣子?
專業理論深解:
OSI 模型定位: HTTP (Hypertext Transfer Protocol) 是 OSI 模型中第七層(應用層)的協定。它的核心設計哲學是「無狀態」(Stateless),這意味著每個請求-回應週期都是獨立的,伺roerver 端預設不會保留任何先前交易的上下文。
請求結構 (Request Structure): 我必須能精確解析一個 HTTP 請求的每個組成部分:
請求行 (Request Line): Method SP Request-URI SP HTTP-Version CRLF。例如:GET /api/users?id=123 HTTP/1.1。方法 (Method) 如 GET, POST, PUT, DELETE, OPTIONS 等定義了對資源的操作意圖 (Verb)。
請求標頭 (Request Headers): 關鍵-值對,提供請求的元數據。例如 Host (虛擬主機路由的必要標頭)、Authorization (身份驗證憑證)、Content-Type (請求主體的媒體類型)、User-Agent (客戶端軟體資訊)。
請求主體 (Request Body): 包含要提交給伺服器的數據,例如 JSON payload 或表單數據。
回應結構 (Response Structure):
狀態行 (Status Line): HTTP-Version SP Status-Code SP Reason-Phrase CRLF。例如:HTTP/1.1 200 OK。狀態碼 (Status Code) 分為五大類 (1xx-5xx),是我判斷請求結果的根本依據。
回應標頭 (Response Headers): Content-Type (回應主體的類型)、Set-Cookie (狀態管理關鍵)、Content-Security-Policy (客戶端安全策略)、Server (伺服器軟體資訊,可能造成資訊洩漏)。
HTTPS (HTTP over TLS): HTTPS 並非一個新協定,而是 HTTP 在傳輸層與應用層之間插入了一個安全層 (TLS/SSL)。其核心安全保障來自:
TLS 握手 (Handshake): 客戶端與伺服器透過非對稱加密(如 RSA)協商出一套對稱加密的金鑰(如 AES),並驗證伺服器證書的真實性。
對稱加密通訊: 握手完成後,後續的 HTTP 報文都使用該對稱金鑰進行加密,確保機密性 (Confidentiality) 和完整性 (Integrity)。